-- *****************************************************************
-- Cisco Weighted Random Early Detection/Drop MIB file.
--
-- August 1997, Shu Tai
--
-- Copyright (c) 1997-1998 by Cisco Systems, Inc.
-- All rights reserved.
--
-- *****************************************************************
--

CISCO-WRED-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Gauge32,
        Counter32
                FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ifIndex
                FROM IF-MIB
        ciscoMgmt
                FROM CISCO-SMI;

ciscoWredMIB MODULE-IDENTITY
        LAST-UPDATED    "9707180000Z"
        ORGANIZATION    "Cisco Systems, Inc."
        CONTACT-INFO
                "       Cisco Systems
                        Customer Service

                Postal: 170 W. Tasman Drive
                        San Jose, CA  95134-1706
                        USA

                   Tel: +1 800 553-NETS

                E-mail: tgrennan-group@cisco.com"

        DESCRIPTION
                "Cisco WRED MIB - Overview

    Cisco Weighted Random Early Detection/Drop is a method which avoids
    traffic congestion on an output interface.  Congestion is
    detected by computing the average output queue size against preset
    thresholds. WRED support are on the IP fast switching and
    IP flow switching only.  It does not apply to IP process switching.

    This MIB incorporates objects from the Cisco WRED line interfaces.
    Its purpose is to provide Weighted Random Early Detection/Drop
    packet configuration and packet filtering information.
    
    WRED are configured/enabled through the CLI command.
    Defaults configuration values are assigned and values can be
    modified through additional CLI commands.
    "

        REVISION        "9707180000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { ciscoMgmt 83 }

ciscoWredMIBObjects OBJECT IDENTIFIER ::= { ciscoWredMIB 1 }

-- Subgroups:
--              Random Early Detection/Drop
--

cwredConfig     OBJECT IDENTIFIER ::= { ciscoWredMIBObjects 1 }
cwredStats      OBJECT IDENTIFIER ::= { ciscoWredMIBObjects 2 }

cwredConfigGlobTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CwredConfigGlobEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED global configuration variables."

        ::= { cwredConfig 1 }

cwredConfigGlobEntry OBJECT-TYPE
        SYNTAX CwredConfigGlobEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "A collection of configuration entries on this 
                interface.  Entries are created and deleted via
                red command line interface."
 
        INDEX { ifIndex }
        ::= { cwredConfigGlobTable 1 }

CwredConfigGlobEntry ::=
        SEQUENCE {
                cwredConfigGlobQueueWeight
                        Integer32
        }

cwredConfigGlobQueueWeight OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The decay factor for the queue average calculation.
                Numbers are 2's exponent up to 16.
                The smaller the number, the faster it decays."

        ::= { cwredConfigGlobEntry 1 }

-- end of cwredConfigGlobTable

cwredConfigPrecedTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CwredConfigPrecedEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED configuration values with respect to
        the IP precedence of packets."

        ::= { cwredConfig 2 }

cwredConfigPrecedEntry OBJECT-TYPE
        SYNTAX CwredConfigPrecedEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "WRED IP precedence configuration table entry.
                Entries are created and deleted via red command
                interface."
 
        INDEX { ifIndex, cwredConfigPrecedPrecedence }
        ::= { cwredConfigPrecedTable 1 }

CwredConfigPrecedEntry ::=
        SEQUENCE {
                cwredConfigPrecedPrecedence
                        Integer32,
                cwredConfigPrecedMinDepthThreshold
                        Integer32,
                cwredConfigPrecedMaxDepthThreshold
                        Integer32,
                cwredConfigPrecedPktsDropFraction
                        Integer32
        }

cwredConfigPrecedPrecedence OBJECT-TYPE
        SYNTAX  Integer32 (0..7)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "The IP precedence of this entry."

        ::= { cwredConfigPrecedEntry 1 }

cwredConfigPrecedMinDepthThreshold OBJECT-TYPE
        SYNTAX  Integer32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The average queue depth at which WRED begins to
                drop packets."

        ::= { cwredConfigPrecedEntry 2 }

cwredConfigPrecedMaxDepthThreshold OBJECT-TYPE
        SYNTAX  Integer32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The average queue depth at which WRED may begin to
                drop all packets."

        ::= { cwredConfigPrecedEntry 3 }

cwredConfigPrecedPktsDropFraction OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The fraction of packets to be dropped when the average queue
                depth is above cwredConfigPrecedMinDepthThreshold
                but below cwredConfigPrecedMaxDepthThreshold."

        ::= { cwredConfigPrecedEntry 4 }

-- end of cwredConfigPrecedTable

cwredQueueTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CwredQueueEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED queue status variable."

        ::= { cwredStats 1 }

cwredQueueEntry OBJECT-TYPE
        SYNTAX CwredQueueEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "A table of WRED queue status variable entry.
                Entries are created and deleted via the red
                command line interface."
 
        AUGMENTS { cwredConfigGlobEntry }
        ::= { cwredQueueTable 1 }

CwredQueueEntry ::=
        SEQUENCE {
                cwredQueueAverage
                        Gauge32,
                cwredQueueDepth
                        Gauge32
        }

cwredQueueAverage OBJECT-TYPE
        SYNTAX  Gauge32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The computed queue average length."

        ::= { cwredQueueEntry 1 }

cwredQueueDepth OBJECT-TYPE
        SYNTAX  Gauge32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The number of buffers/particles currently withheld in queue."

        ::= { cwredQueueEntry 2 }

-- end of cwredQueueTable


cwredStatTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF CwredStatEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "A table of WRED status information with respect to
        the IP precedence of packets."

        ::= { cwredStats 2 }

cwredStatEntry OBJECT-TYPE
        SYNTAX CwredStatEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
                "The WRED interface status information entry.
                Entries are created and deleted via the red
                red command line interface."
 
        AUGMENTS { cwredConfigPrecedEntry }
        ::= { cwredStatTable 1 }

CwredStatEntry ::=
        SEQUENCE {
                cwredStatSwitchedPkts
                        Counter32,
                cwredStatRandomFilteredPkts
                        Counter32,
                cwredStatMaxFilteredPkts
                        Counter32
        }

cwredStatSwitchedPkts OBJECT-TYPE
        SYNTAX  Counter32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The number of packets output by WRED."

        ::= { cwredStatEntry 1 }

cwredStatRandomFilteredPkts OBJECT-TYPE
        SYNTAX  Counter32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The number of packets filtered/dropped due to average
                queue length exceeds cwredConfigMinDepthThreshold
                and meet a defined random drop policy."

        ::= { cwredStatEntry 2 }

cwredStatMaxFilteredPkts OBJECT-TYPE
        SYNTAX  Counter32
        UNITS   "packets"
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
                "The number of packets filtered/dropped due to average
                queue length exceeds cwredConfigMaxDepthThreshold."

        ::= { cwredStatEntry 3 }

-- end of cwredStatTable

-- conformance information

ciscoWredMIBConformance OBJECT IDENTIFIER ::= { ciscoWredMIB 3 }
ciscoWredMIBCompliances OBJECT IDENTIFIER ::= { ciscoWredMIBConformance 1 }
ciscoWredMIBGroups      OBJECT IDENTIFIER ::= { ciscoWredMIBConformance 2 }


-- compliance statement

ciscoWredMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the WRED on a Cisco RSP platform."
        MODULE  -- this module
                MANDATORY-GROUPS { ciscoWredMIBGroup }
        ::= { ciscoWredMIBCompliances 1 }


-- units of conformance

ciscoWredMIBGroup OBJECT-GROUP
        OBJECTS {
                cwredConfigGlobQueueWeight,
                cwredConfigPrecedMinDepthThreshold,
                cwredConfigPrecedMaxDepthThreshold,
                cwredConfigPrecedPktsDropFraction,
                cwredQueueAverage,
                cwredQueueDepth,
                cwredStatSwitchedPkts,
                cwredStatRandomFilteredPkts,
                cwredStatMaxFilteredPkts
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing WRED monitoring."
        ::= { ciscoWredMIBGroups 1 }

END